The present invention relates to data storage, and more specifically, this invention relates to the distribution of data across compute modules and internally striping the data.
Data striping is the technique of segmenting logically sequential data (such as a file) so that consecutive segments of the data are stored on different physical storage devices.
Striping is useful when a processing device requests data more quickly than a single storage device is able to provide the data. By spreading segments across multiple devices which can be accessed concurrently, total data throughput is increased. It is also a useful method for balancing input/output (I/O) loads across an array of storage devices such as disk drives. For instance, striping is used across disk drives in redundant array of independent disks (RAID) storage, network interface controllers, different computers in clustered file systems and grid-oriented storage, and RAM in some systems.
Moreover, grid storage is a collection of modules which are organized in a grid fashion and connected together in parallel. For instance, the modules may be connected together in parallel using InfiniBand and/or Ethernet connections. Each of the modules are typically an independent computer with its own memory, interconnections, disk drives, and other subcomponents. Each module also has a computing component which is capable of running a software platform, as well as an interface node which is used to route the incoming I/Os to the relevant module and process based on distribution logic.
While implementing striping in combination with grid storage has the potential to improve performance dramatically by distributing the load across all the grid storage cores, this combination has resulted in multiple limitations for conventional products. For instance, in conventional products, a storage administrator is required to create a group of striped volumes for each logical volume the application is planning to use, group the striped volumes together in consistency groups, define mirroring for each group separately, perform zoning for each group separately, etc.
Furthermore, many conventional operating systems are not able to support striping at all, thereby limiting users from implementing striping. As a result, conventional products result in users having to settle for limited performance while performing various applications, such as DB applications for Redo-Logs, Backup applications, Replication/Cloning applications, etc.